The networked storage device is one of the trends of Internet development, and iSCSI transmission protocol is a new network storage technology standard. Storage area network (SAN) is a network connecting storage devices and servers; i.e., using network to connect storage devices. Compared to technologies, such as, the Redundant Array of Independent Disks (RAID) and Small Computer System Interface (SCSI) that directly connect storage devices and servers, the network storage technology has the advantages of high speed transmission, high scalability and high reliability as the expansion and the backup of the storage devices are not restricted by the server.
Because of the high demands on the bandwidth, fiber channel is the connection technology commonly used for storage network currently. Another uprising storage network technology is the recently standardized iSCSI transmission protocol. iSCSI transmission protocol is to use the iSCSI Protocol Data Unit (PDU) to transmit SCSI instruction and data on IP network. Therefore, through iSCSI protocol, IP network may also become storage network. For the client-side, to use IP network as storage network, it only requires to replace the interfaces of the servers and the storage devices with iSCSI interfaces so that the switches of the original IP network may be used to construct a storage network.
FIG. 1 shows an exemplary schematic view of a typical iSCSI virtual storage network. As shown in FIG. 1, client-side 102 installs the driver of iSCSI initiator 110 and connection to virtualization server 101. Storage-side 103 installs the driver of iSCSI target 120 and connection to virtualization server 101. Virtualization server 101 installs virtualization software layer 140 in addition to the drivers of iSCSI initiator and target.
According to the configuration of virtualization software layer 140, the change of the iSCSI packet field may be observed from the view point of iSCSI packet data flow. Initially, iSCSI target 120 of the switch of virtualization server 103 receives the iSCSI packet and unpacks the packet. The packet is then transmitted to SCSI layer 130 for reading the command. Then, virtualization software layer 140 is called to transform into physical access location and generate SCSI access command format. Finally, the SCSI command is packed into an iSCSI packet and transmitted. In this series of translation, iSCSI starts with the initial input packet format, then through the stages of header removed, SCSI command (Command descriptor block, CDB) of payload extracted, SCSI layer access, mapped by virtualization software later to data physical access location, to regenerate SCSI command, and finally adding iSCSI header for transmission.
The input iSCSI packet and the final output iSCSI packet are both iSCSI packets in appearance. However, inside the virtualization switch, a plurality of software layers is required to accomplish the virtualization network storage based on the iSCSI session architecture. The final outputted iSCSI packet goes through repeated data movement, including initial unpacking and final generation.
In the current technology, the storage network virtualization techniques using iSCSI protocol as connections may be divided into the following categories.
The first category is shown in FIG. 2. From the viewpoint of the relation between iSCSI switch 201 and iSCSI host-side 202, the agents managing the storage device are distributed outside of the data path and the transmitted data may reach network storage device 203 without passing through the switch of the storage device. Data, after leaving the host-side, will be transmitted to storage device 203 immediately without redundant protocol processing and data duplication on the data path. However, both host-side and storage-side needs to install iSCSI agent, labeled as 210, 220, for exchanging access messages with the storage server.
For example, in U.S. Pat. No. 6,845,403, the iSCSI protocol access packets are divided into control type and data type. The control-type packets are transmitted from host-side to an access management server, and the server relays the command to the physical storage device. The data-type packets are transmitted through the pre-established iSCSI session between host-side and physical storage-device-side for data transmission so as to achieve the most direct data transmission path. However, the host-side needs to install special iSCSI driver so as to interact with the management server. In addition, when the number of storage devices increases, the iSCSI sessions between host-side and the storage-side also increase.
The second type is shown in FIG. 3. Host-side 302 and storage-side both need iSCSI agent, labeled as 320 and 310. The data is transmitted through switch router 301 to storage-side. The switch router uses the simple lookup table of IP layer 311 to determine the data packet to be transmitted to storage-side 303. Therefore, the data path only includes the IP location translation. However, the host-side needs to install iSCSI agent 320. Also, the access information synchronization is difficult.
For example, in U.S. Pat. No. 6,934,799, when SCSI command is issued, the host-side searches the virtual IP mapping table specific to host-side to find the IP and TCP locations of the iSCSI packet transmission at the same time. The packet is transmitted to the virtualization gateway, and then to physical network access location. The access loading is distributed on the host-side and the physical access location. The transmission of each packet on the data path is preserved, and only simple IP location is replaced. In this manner, when the physical storage device is changed, it is only necessary to change the virtual IP and physical IP mapping on the data gateway, and the packet on the data path only needs to change the fields of IP and TCP location without any redundant data duplication.
However, host-side needs to implement an access control module on top of iSCSI driver so as to join the gateway virtualization access system. It is easy to operate the gateway management between virtual and physical hard disks. However, the modification process of mapping between the block range of the access table on the host-side and the virtual TCP field is complicated and difficult to achieve unified management.
The third type is shown in FIG. 4. iSCSI switch 401 is on the data path between host-side 402 and physical storage-side 403 to accomplish the virtualization network storage design in a stand-alone manner. With iSCSI driver installed, host-side may access data through switch 401. Host-side 402 only requires a general iSCSI initiator 410 to access the network storage provided by switch 401. However, during the transmission on switch 401, data packet needs to go through a plurality of layers of protocol processing and data duplication; therefore, the access efficiency will be reduced.
For example, U.S. Patent Publication No. US2005/0114464 uses a general iSCSI protocol and a virtualization software layer to achieve the virtualization storage network. A relation between the received virtualization location access and physical storage device is found for performing the data path optimization, and the translation between different transmission protocols on the host-side and storage-side may be achieved. However, no details for buffering of transmission data during the protocol translation are disclosed. If a general data buffering technique is used, the access efficiency will be reduced because of the redundant data duplication.
There are in-band and out-of-band methods for the current technologies to realize the virtualization. In the out-of-band method, the virtualization device is located out of the data path so that a high efficiency data transmission path is provided between the host-side and the storage-side. However, when the configuration of the access device is changed, it is more time-consuming to update the virtualization device and communicate with the hosts. Also, the host-side needs to install the software interface communicating with the virtualization device, which is less convenient in terms of direct access to the storage device. In the in-band method, the virtualization device is on the data access path between the host-side and the storage device. Although the management is more convenient after the change of storage group and direct access to the storage device is provided to the host-side, the inquiries of the virtualization device from the host-side share the bandwidth with the physical data transmission path; therefore, the transmission efficiency is reduced.
For the above two methods, the in-band method may be used to achieve virtualization access, and the virtualization server on the data path may independently achieve the translation of the virtual and physical access addresses; the out-of-band method may be used to distribute the virtualization access workload to the virtualization server and the agent on the host-side.